<?php
include_once 'inc/config.inc.php';
include_once 'inc/mysql.inc.php';
include_once 'inc/tool.inc.php';
$link=connect();

//用户注册
if(isset($_GET['submit'])){

	//检查数据格式
	if(empty($_POST['name'])){
		skip('register.php', 'error', '用户名不得为空！');
	}
	if(mb_strlen($_POST['name'])>12){
		skip('register.php', 'error', '用户名长度不要超过12个字符！');
	}
	if(empty($_POST['pw'])){
		skip('register.php', 'error','密码不得为空！');
	}else if(mb_strlen($_POST['pw'])>18){
		skip('register.php', 'error', '密码长度不要超过12个字符！');
	}else if(mb_strlen($_POST['pw'])<6){
		skip('register.php', 'error', '密码长度不要低于6个字符！！');
	}
	if($_POST['pw']!=$_POST['pw2']){
		skip('register.php', 'error','两次密码输入不一致！');
	}
	if(strtolower($_POST['vcode'])!=strtolower($_SESSION['vcode'])){
		skip('register.php', 'error','验证码输入错误！');
	}

	//检查是否被注册
	$_POST=escape($link,$_POST);
	$query="select * from userinfo where username='{$_POST['name']}'";
	$result=execute($link, $query);
	if(mysqli_num_rows($result)){
		skip('register.php', 'error', '这个用户名已经被别人注册了！');
	}

	//检查邮箱
	$email = $_POST["email"];
	if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
		skip('register.php', 'error','非法的电子邮箱！');
	}

	$_POST=escape($link,$_POST);
	$query="insert into userinfo(username,password,register_time,email,QQ) values('{$_POST['name']}',md5('{$_POST['pw']}'),now(),'{$_POST['email']}','{$_POST['QQ']}')";
	execute($link,$query);

	if(mysqli_affected_rows($link)==1){
		setcookie('youyou[name]',$_POST['name']);
		setcookie('youyou[pw]',sha1(md5($_POST['pw'])));
		skip('index.php','ok','注册成功！');
	}else{
		skip('register.php','eror','注册失败,请重试！');
	}

	close($link);

}

?>

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html" charset="utf-8" />
		<meta name="author" content="悠游网" />
		<meta name="copyright" content="悠游网络科技股份有限公司" />
		<title>悠游网-欢迎注册_旅游_旅行_出国旅游_自驾游_周边游_旅游网站</title>
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
		<meta name='keywords' content='旅游,旅游网,旅行,出国旅游,自驾游,周边游,旅游网站,同程旅游' />
		<meta name='description' content='悠游网(YY.COM)是一家专业的一站式旅游参考平台，提供近万家景点门票、特价机票、出国旅游、周边游、自驾游及酒店预订服务；专业旅游线路服务、让您的旅行更安心！' />
		<link href="img/logo.gif" rel="shortcut icon"/>
		<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
		<link rel="stylesheet" type="text/css" href="css/style.css"/>
		<style type="text/css">
			@-webkit-keyframes In{
				0%{
					top:-40px;
					opacity: 0;
				}
				100%{
					top:0px;
					opacity: 1;
				}
			}
			@-moz-keyframes In{
				0%{
					top:-40px;
					opacity: 0;
				}
				100%{
					top:0px;
					opacity: 1;
				}
			}
			@keyframes In{
				0%{
					top:-40px;
					opacity: 0;
				}
				100%{
					top:0px;
					opacity: 1;
				}
			}
		</style>
	</head>
	<body>
<div class="wrap">
	<div class="register container-fluid">
		<div class="modal show" data-backdrop="static"style="animation: 1s In linear;"  id="myModa2" tabindex="-1">
			<div class="modal-dialog">
				<div class="modal-content">
					<div class="modal-header">
						<button type="button" class="close" data-dismiss="modal">
							<span>&times;</span>
						</button>
						<h2 class="modal-title">用户注册</h2>
					</div>
						<div class="modal-body">
							<div class="container-fluid">
								<div class="row">
									<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
										<p class="form-group">
											<label for="name"><span>*</span>用户名：</label>
											<input type="text" required="required" autocomplete="on" placeholder="请输入 6-12 位字符 " class="form-control name" name="name" />
											<em class="em1"></em>
											<span class="prompt"><span>6-12位，字母、数字、下划线</span><span></span></span>
										</p>
									</div>
									<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
										<p class="form-group">
											<label for="pw"><span>*</span>登录密码：</label>
											<input type="password" required="required" placeholder="请输入6-18位字符" class="form-control pw" name="pw" />
											<em class="em2"></em>
											<span class="prompt"><span>6-18位，大小写、字母、数字</span><span></span></span>
										</p>
									</div>
									<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
										<p class="form-group">
											<label for="pw2"><span>*</span>确定密码：</label>
											<input type="password" required="required" placeholder="请与上面保持一致" class="form-control pw2" name="pw2" />
											<em class="em2"></em>
											<span class="prompt"><span><span class="info"></span><span></span></span></span>
										</p>
									</div>
									<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
										<p class="form-group">
											<label for="email"><span>*</span>电子邮箱：</label>
											<input type="email" required="required" autocomplete="on" placeholder="请输入合法的电子邮件" class="form-control email" name="email" />
											<em class="em3"></em>
											<span class="prompt"><span><span class="info"></span><span></span></span></span>
										</p>
									</div>
									<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
										<p class="form-group">
											<label for="QQ"><span>*</span>QQ：</label>
											<input type="text" required="required" autocomplete="on" placeholder="请输入合法的QQ" class="form-control QQ" name="QQ" />
											<span class="prompt"><span><span class="info"></span><span></span></span></span>
										</p>
									</div>
									<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
										<p class="form-group">
											<label for="vis"><span>*</span>验证码：</label>
											<input type="text" class="form-control vis" name="vcode" />
											<a href="javascript:;" title="请点击刷新验证码"><img id="vcode" src="show_code.php" alt="请点击刷新验证码" border="0" align="absmiddle" onclick="this.src='show_code.php?rnd=' + Math.random();" /></a>
										</p>
									</div>
								</div>
							</div>

								<div class="modal fade" data-backdrop="static"  id="myModa3" tabindex="-1">
									<div class="modal-dialog">
										<div class="modal-content">
											<div class="modal-header">
												<button type="button" class="close" data-dismiss="modal">
													<span>&times;</span>
												</button>
												<h4 class="modal-title">悠游网协议</h4>
											</div>
												<div class="modal-body">
													<h5><strong>1．悠游网服务条款的确认</strong></h5>
														悠游网的所有权与运作权归悠游网网络科技股份有限公司（以下简称"悠游网"）所有。本服务条款具有法律约束力。一旦您点选 "注册"并通过注册程序，即表示您自愿接受本协议之所有条款，并已成为悠游网的注册会员。<br />
														用户在享用悠游网会员服务的同时，同意接受悠游网会员服务提供的各类信息服务。<br />
													<h5><strong>2．服务内容</strong></h5>
														2.1 悠游网服务的具体内容由悠游网根据实际情况提供。<br />
														2.2 悠游网在悠游网上向其会员提供相关网络服务，与相关网络服务有关的设备（如个人电脑、手机、及其他与接入互联网或移动网有关的装置）及所需的费用（如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费）均由会员自行负担。<br />
													<h5><strong>3．会员帐号及密码</h5></strong>
														您注册会员成功后，将得到一个帐号和密码。您应妥善保管该帐号及密码，并对以该帐号进行的所有活动及事件负法律责任。因黑客行为或会员保管疏忽致使帐号、密码被他人非法使用的，悠游网不承担任何责任。如您发现任何非法使用会员帐号或安全漏洞的情况，请立即与悠游网联系。
													<h5><strong>4．会员权责</h5></strong>
														4.1 会员有权按照悠游网规定的程序和要求使用悠游网向会员提供的各项网络服务，如果会员对该服务有异议，可以与悠游网联系以便得到及时解决。<br />
														4.2 用户在申请使用悠游网网络服务时，必须向悠游网提供准确的个人资料，如 个人资料有任何变动，必须及时更新。<br />
														4.3 会员同意接受悠游网通过电子邮件、短信或其他方式向会员发送的预订确认信息、以及其他预订产品或服务相关的信息。会员同意接受悠游网通过电子邮件、短信或其他方式向会员发送的促销或其他商业信息，如会员不同意接受促销或其他商业信息，会员可以自行退订或电话联系悠游网进行退订。<br />
														4.4 会员在悠游网的网页上发布信息或者利用悠游网的服务时必须符合国家的法律法规以及国际法的有关规定。<br />
														4.5 对于会员通过悠游网网上消息平台（包括但不限于论坛、BBS、评论）上传到悠游网网站上可公开获取区域的任何内容，会员同意授予悠游网在全世界范围内享有完全的、免费的、永久性的、不可撤销的、非独家的权利，以及再许可第三方的权利，以使用、复制、修改、改编、出版、翻译、据以创作衍生作品、传播、表演和展示此等内容（整体或部分），和/或将此等内容编入当前已知的或以后开发的其他任何形式的作品、媒体或技术中。<br />
														4.6 会员承诺不会在悠游网的消息平台（包括但不限于论坛、BBS、评论）发布如下信息：<br />
														反对宪法所确定的基本原则的；<br />
														危害国家安全，泄露国家秘密，颠覆国家政权，破坏国家统一的；<br />
														损害国家荣誉和利益的；<br />
														煽动民族仇恨、民族歧视，破坏民族团结的；<br />
														破坏国家宗教政策，宣扬邪教和封建迷信的；<br />
														散布谣言，扰乱社会秩序，破坏社会稳定的；<br />
														散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的；<br />
														侮辱或者诽谤他人，侵害他人合法权益的；<br />
														含有法律、行政法规禁止的其他内容的。<br />
														4.7 会员单独为其发布在悠游网上信息承担责任。会员若在悠游网散布和传播违法信息，网络会员服务的系统记录有可能作为会员违法之证据。<br />
														4.8 会员不得利用本站的服务从事以下活动：<br />
														未经允许，进入计算机信息网络或者使用计算机信息网络资源；<br />
														未经允许，对计算机信息网络功能进行删除、修改或者增加；<br />
														未经允许，对进入计算机信息网络中存储、处理或者传输的数据和应用程序进行删除、修改或者增加；<br />
														故意制作、传播计算机病毒等破坏性程序；<br />
														其他危害计算机信息网络安全的行为。<br />
														4.9 会员不得以任何方式干扰本站的服务。<br />
														4.10 会员承诺遵守本站的所有其他规定和程序。<br />
														4.11 如果会员违反上述规定，悠游网有权要求其改正或直接采取一切必要措施（包括但不限于更改或删除会员发布的信息、中断或终止会员使用网络的权利等），以减轻会员不当行为所造成的影响。<br />
													<h5><strong>5．服务条款的修改</h5></strong>
														悠游网有权在必要时修改本服务条款而无需事先通知用户。悠游网行使该修改权，无需对用户或第三方承担任何责任。 会员如不同意修改，可以主动选择取消会员资格；如果会员继续使用悠游网服务，将被视为接受修改后的服务条款。<br />
													<h5><strong>6．服务内容的修改或中断</h5></strong>
														鉴于网络服务的特殊性，悠游网保留随时修改或中断其部分或全部网络服务的权利，并无需通知会员或为此对会员及任何第三方负责。<br />
													<h5><strong>7．会员隐私保护</h5></strong>
														悠游网尊重会员的隐私权，不会公开、编辑或泄露任何有关会员的个人资料以及会员在使用网络服务时存储在悠游网的非公开内容，但以下情况除外：<br />
														事先获得会员的明确授权；遵守法律规定或悠游网合法服务程序；<br />
														按照相关政府主管部门的合理要求；<br />
														维护社会公众利益；<br />
														维护悠游网的合法权益；<br />
														符合其他合法要求。<br />
													<h5><strong>8．中断或终止服务</h5></strong>
														如发生下列任何一种情形，悠游网有权随时中断或终止向会员提供本协议项下的网络服务，而无需对会员或任何第三方承担任何责任。<br />
														会员向悠游网提供的个人资料不真实。<br />
														会员违反本协议的规则或不履行其所承担的义务。<br />
														除此之外，会员可随时根据需要通知悠游网终止向该会员提供服务，会员服务终止后，会员使用服务的权利同时终止。自会员服务终止之时起，悠游网不再对该会员承担任何责任。<br />
													<h5><strong>9．知识产权</h5></strong>
														9.1 悠游网在网络服务中提供的任何文本、图片、图形、音频和视频资料均受版权、商标权以及其他相关法律法规的保护。未经悠游网事先同意，任何人不能擅自复制、传播这些内容，或用于其他任何商业目的，所有这些资料或资料的任何部分仅可作为个人或非商业用途而保存在某台计算机内。<br />
														9.2 悠游网为提供网络服务而使用的任何软件（包括但不限于软件中的任何文字、图形、音频、视频资料及其辅助资料）的一切权利属于该软件的著作权人，未经该著作权人同意，任何人不得对该软件进行反向工程、反向编译或反汇编。<br />
														9.3 如有著作权人发现会员在悠游网发表的内容侵犯其著作 权，并依《互联网著作权行政保护办法》、《信息网络传播保护条例》的规定向悠游网发出书面通知并提供相关内容的著作权权属证明的，悠游网有权在不事先通知会员的情况下自行移除相关内容，并依法保留相关数据。<br />
														9.4 若会员对9.3条指向内容依法享有发表权，可以向悠游网及9.3条指向之著作权人一并发出说明被移除内容不侵犯其著作权的反通知，反通知应为书面形式，并包含如下内容：<br />
														明确的身份证明、住址、联系方式；<br />
														被移除内容的合法性证明； 被移除内容在互联网上的位置；反通知内容的真实性声明。<br />
														符合规定的反通知发出后，悠游网有权恢复被移除内容。<br />
													<h5><strong>10．免责声明</h5></strong>
														10.1 悠游网对任何因会员不正当或非法使用服务、在网上进行交易、或会员传送信息变动而产生的直接、间接、偶然、特殊及后续的损害不承担责任。<br />
														10.2 悠游网对任何他人的威胁性的、诽谤性的、淫秽的、令人反感的或非法的内容或行为或对他人权利的侵犯（包括知识产权）不承担责任；并对任何第三方通过服务发送或在服务中包含的任何内容不承担责任。<br />
														10.3 会员明确同意其使用悠游网服务所存在的风险以及使用悠游网服务产生的一切后果由其自己承担。<br />
														10.4 对于因不可抗力或悠游网不能控制的原因造成的网络服务中断或其它缺陷，悠游网不承担任何责任，但将尽力减少因此而给用户造成的损失和影响。<br />
														10.5 悠游网不对所提供之网络服务做任何类型之担保，包括但不限于：<br />
														网络服务一定能满足会员要求；<br />
														网络服务不会中断；<br />
														网络服务的及时性、安全性、准确性。<br />
														但是悠游网对不违反规定的特定目的担保不作限制。<br />
													<h5><strong>11．赔偿</h5></strong>
														因会员对本服务之使用而导致悠游网遭受任何来自第三方之纠纷、诉讼及索赔要求，会员同意向悠游网及其关联企业、职员赔偿相应损失（包括合理的律师费），并尽力使之免受损害。
													<h5><strong>12．通告</h5></strong>
														所有发给会员的通告都可以通过重要页面的公告、电子邮件以及常规信件的形式传送。
													<h5><strong>13．法律</h5></strong>
														悠游网服务条款之效力、解释、执行均适用中华人民共和国法律。如发生争议，应提交至有管辖权之人民法院。
													<h5><strong>14．其他规定</h5></strong>
														本服务条款中的标题仅为方便而设，在解释本服务条款时应被忽略。
												</div>
												<div class="modal-footer">
													<div class="btn btn-info" data-dismiss="modal">确定</div>
												</div>
										</div>
									</div>
								</div>
								<p class="check">
									<em class="gou"></em>
									<span>我已阅读并同意<a href="javascript:;"  data-toggle="modal" data-target="#myModa3" >《悠游网服务条款》</a> </span>
								</p>
						</div>
						<div class="modal-footer">
							<input type="button" name="submit" class="reg" value="同意服务条款并注册" />
							<div>已有悠游网账号?<a href="login.php">立即登录</a>  | <a href="index.php">悠游网首页</a></div>
						</div>
				</div>
			</div>
		</div>
	</div>
</div>
	<script src="js/jquery.min.js"></script>
	<script src="js/bootstrap.min.js"></script>
	<script type="text/javascript">

		var oCheck=document.getElementsByClassName('check')[0];
		var em=oCheck.getElementsByTagName('em')[0];
		var b=true;
		em.onclick=function(){
			if(b){
				this.className="gou";
				b=false;
			}else{
				this.className="";
				b=true;
			}
		}

		function agree(){
			if(em.className=="gou"){
				return true;
			}else{
				return false;
			}
		}

		document.onkeydown=function(ev){
			if(ev.keyCode==13){
				ajax();
			}
		}

		$('.reg').click(function(){

			ajax();

		});

		function ajax(){

			$.ajax({
				type:"post",
				url:"register.php?submit=1",
				data:"name="+username[0].value+"&pw="+pass[0].value+"&pw2="+pass2[0].value+"&email="+email[0].value+"&QQ="+QQ[0].value+"&vcode="+$('.vis').val(),
				async:true,
				success:function(data){

					document.write(data);

				}
			});

		}

		//表单验证
		var username=$('.modal-body .name');
		var pass=$('.modal-body .pw');
		var pass2=$('.modal-body .pw2');
		var email=$('.modal-body .email');
		var QQ=$('.modal-body .QQ');
		var oformGroup=document.getElementsByClassName('form-group');
		var oPormpt=document.getElementsByClassName('prompt')[0].getElementsByTagName('span')[0];
		var oPormpt2=document.getElementsByClassName('prompt')[1].getElementsByTagName('span')[0];
		var oico=document.getElementsByClassName('prompt')[0].getElementsByTagName('span')[1];
		var oico2=document.getElementsByClassName('prompt')[1].getElementsByTagName('span')[1];
		oPormpt.classList.add('alert');
		oPormpt2.classList.add('alert');

		username[0].onblur=function(){
			checkUser();
		}

		pass[0].onblur=function(){
			checkPass();
		}

		pass2[0].onblur=function(){
			checkPass2();
		}

		var re=/^\w+@[a-z 0-9]+\.[a-z]{2,4}$/
		email[0].onblur=function(){
			checkemail();
		}
		function checkemail(){
			if(re.test(email[0].value)== false){
				oformGroup[3].classList.add('has-error');
				return false;
			}else if(email[0].value==""){
				oformGroup[3].classList.add('has-error');
				return false;
			}else{
				oformGroup[3].classList.remove('has-error');
				oformGroup[3].classList.add('has-success');
			}
			return true;
		}

		function checkUser(){
			if(username[0].value==""){
				oPormpt.classList.add('alert-warning');
				oico.classList.add('warning');
				oPormpt.innerHTML="用户名不能为空";
				oformGroup[0].classList.add('has-error');
				return false;
			}else if(username[0].value.length<4 || username[0].value.length>12){
				oPormpt.innerHTML="用户名必须是4-12位字符";
				oico.classList.add('warning');
				oPormpt.classList.add('alert-warning');
				oformGroup[0].classList.add('has-error');
				return false;
			}else{
				oformGroup[0].classList.remove('has-error');
				oformGroup[0].classList.add('has-success');
				oPormpt.classList.remove('alert-warning');
				oico.classList.remove('warning');
				oico.classList.add('success');
				oPormpt.innerHTML="4-12位，字母、数字";
			}

			for(var i=0;i<username[0].value.length;i++){
			    var charTest=username[0].value.toLowerCase().charAt(i);
				if( (!(charTest>='0' && charTest<='9')) &&  (!(charTest>='a' && charTest<='z'))  && (charTest!='_') ) {
					oformGroup[0].classList.add('has-error');
					oPormpt.innerHTML="用户名必须是4-12位字符";
				    return false;
			    }
			}
			return true;
		}

		function checkPass(){
			if(pass[0].value==""){
				oformGroup[1].classList.add('has-error');
				oPormpt2.classList.add('alert-warning');
				oico2.classList.add('warning');
				oPormpt2.innerHTML="密码不能为空";
				return false;
			}else if(pass[0].value.length<6 || pass[0].value.length>18){
				oformGroup[1].classList.add('has-error');
				oPormpt2.classList.add('alert-warning');
				oico2.classList.add('warning');
				oPormpt2.innerHTML="密码必须是6-18位字符";
				return false;
			}else{
				oformGroup[1].classList.remove('has-error');
				oPormpt2.classList.remove('alert-warning');
				oformGroup[1].classList.add('has-success');
				oico2.classList.remove('warning');
				oico2.classList.add('success');
				oPormpt2.innerHTML="6-18位，字母、数字";
			}
			return true;
		}


		function checkPass2(){
			var oformGroup=document.getElementsByClassName('form-group');
			var aPrompt=document.getElementsByClassName('prompt')[2].getElementsByTagName('span')[0];
			var info=aPrompt.getElementsByTagName('span')[0];
			var ioc=aPrompt.getElementsByTagName('span')[1];
			if(pass2[0].value!=pass[0].value){
				oformGroup[2].classList.add('has-error');
				aPrompt.classList.add('alert');
				aPrompt.classList.add('alert-warning');
				ioc.classList.add('warning');
				info.innerHTML="密码与上面不一致!";
				return false;
			}else{
				oformGroup[2].classList.remove('has-error');
				aPrompt.classList.remove('alert-warning');
				ioc.classList.remove('warning')
				oformGroup[2].classList.add('has-success');;
				ioc.classList.add('success');
				info.innerHTML="";
			}
			return true;

		}

	</script>
</body>
</html>
